home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / eofbof / eofbof.frm next >
Text File  |  1995-05-02  |  11KB  |  348 lines

  1. VERSION 2.00
  2. Begin Form frmEOF_BOF 
  3.    BackColor       =   &H00C0C0FF&
  4.    Caption         =   "EOF / BOF"
  5.    ClientHeight    =   4440
  6.    ClientLeft      =   1200
  7.    ClientTop       =   1500
  8.    ClientWidth     =   6345
  9.    Height          =   4845
  10.    Icon            =   EOFBOF.FRX:0000
  11.    KeyPreview      =   -1  'True
  12.    Left            =   1140
  13.    LinkTopic       =   "Form1"
  14.    ScaleHeight     =   4440
  15.    ScaleWidth      =   6345
  16.    Top             =   1155
  17.    Width           =   6465
  18.    Begin CommandButton cmdPrint 
  19.       Caption         =   "P&rint List"
  20.       Height          =   396
  21.       Left            =   4800
  22.       TabIndex        =   4
  23.       Top             =   960
  24.       Width           =   1260
  25.    End
  26.    Begin ListBox lstActions 
  27.       FontBold        =   -1  'True
  28.       FontItalic      =   0   'False
  29.       FontName        =   "MS Sans Serif"
  30.       FontSize        =   8.25
  31.       FontStrikethru  =   0   'False
  32.       FontUnderline   =   0   'False
  33.       Height          =   2175
  34.       Left            =   240
  35.       TabIndex        =   11
  36.       Top             =   2040
  37.       Width           =   5865
  38.    End
  39.    Begin CommandButton cmdMove 
  40.       Caption         =   "Move&Last"
  41.       Height          =   396
  42.       Index           =   3
  43.       Left            =   4800
  44.       TabIndex        =   8
  45.       Top             =   1440
  46.       Width           =   1260
  47.    End
  48.    Begin CommandButton cmdMove 
  49.       Caption         =   "Move&Next"
  50.       Height          =   396
  51.       Index           =   2
  52.       Left            =   3240
  53.       TabIndex        =   7
  54.       Top             =   1440
  55.       Width           =   1260
  56.    End
  57.    Begin CommandButton cmdMove 
  58.       Caption         =   "Move&Prev"
  59.       Height          =   396
  60.       Index           =   1
  61.       Left            =   1725
  62.       TabIndex        =   6
  63.       Top             =   1440
  64.       Width           =   1260
  65.    End
  66.    Begin CommandButton cmdMove 
  67.       Caption         =   "Move&First"
  68.       Height          =   396
  69.       Index           =   0
  70.       Left            =   240
  71.       TabIndex        =   5
  72.       Top             =   1440
  73.       Width           =   1260
  74.    End
  75.    Begin CommandButton cmdRefresh 
  76.       Caption         =   "&Refresh"
  77.       Height          =   396
  78.       Left            =   3270
  79.       TabIndex        =   3
  80.       Top             =   960
  81.       Width           =   1260
  82.    End
  83.    Begin CommandButton cmdDelete 
  84.       Caption         =   "&Del Rec"
  85.       Height          =   396
  86.       Left            =   1725
  87.       TabIndex        =   2
  88.       Top             =   960
  89.       Width           =   1260
  90.    End
  91.    Begin CommandButton cmdAdd 
  92.       Caption         =   "&Add Rec"
  93.       Height          =   396
  94.       Left            =   240
  95.       TabIndex        =   1
  96.       Top             =   960
  97.       Width           =   1260
  98.    End
  99.    Begin TextBox Text1 
  100.       DataField       =   "KeyFld"
  101.       DataSource      =   "Data1"
  102.       Height          =   300
  103.       Left            =   195
  104.       TabIndex        =   0
  105.       Top             =   600
  106.       Width           =   1260
  107.    End
  108.    Begin Data Data1 
  109.       Caption         =   "Data1"
  110.       Connect         =   ""
  111.       DatabaseName    =   "C:\CODE\IRA\VB\TESTBED\EOF_BOF.MDB"
  112.       Exclusive       =   0   'False
  113.       Height          =   300
  114.       Left            =   192
  115.       Options         =   0
  116.       ReadOnly        =   0   'False
  117.       RecordSource    =   "eof_bof"
  118.       Top             =   192
  119.       Width           =   5868
  120.    End
  121.    Begin Label Label1 
  122.       AutoSize        =   -1  'True
  123.       Caption         =   "EOF State"
  124.       Height          =   195
  125.       Index           =   1
  126.       Left            =   3240
  127.       TabIndex        =   10
  128.       Top             =   600
  129.       Width           =   855
  130.    End
  131.    Begin Label Label1 
  132.       AutoSize        =   -1  'True
  133.       Caption         =   "BOF State"
  134.       Height          =   195
  135.       Index           =   0
  136.       Left            =   1800
  137.       TabIndex        =   9
  138.       Top             =   600
  139.       Width           =   855
  140.    End
  141. End
  142. Option Explicit
  143.  
  144. Sub cmdAdd_Click ()
  145.     '---------------------------------------------
  146.     ' Notice that the MoveLast is artificial, not
  147.     ' a true part of the "Add" process.  Neither is
  148.     ' the Find performed after added -- these are
  149.     ' simply "bells and whistles" I included.
  150.     '---------------------------------------------
  151.     lstActions.AddItem "Add Record:"
  152.  
  153.     Dim i%
  154.     
  155.     If ((data1.Recordset.EOF = False) Or (data1.Recordset.BOF = False)) Then
  156.         data1.Recordset.MoveLast
  157.         i% = data1.Recordset.Fields(0)
  158.         i% = i% + 1
  159.     End If
  160.     data1.Recordset.AddNew
  161.     text1 = i%
  162.     data1.Recordset.Update
  163.  
  164.     ' Why do this?  To restore position to the latest added record...(!)
  165.     data1.Recordset.FindFirst "[KeyFld] = " & i%
  166.     
  167. End Sub
  168.  
  169. Sub cmdDelete_Click ()
  170.     '---------------------------------------------
  171.     ' Delete Record (if it exists)
  172.     '---------------------------------------------
  173.     lstActions.AddItem "Del Record:"
  174.  
  175.     If data1.Recordset.BOF = False And data1.Recordset.EOF = False Then
  176.         data1.Recordset.Delete
  177.         cmdMove(2).Value = True  ' i.e. MoveNext
  178.     End If
  179.  
  180. End Sub
  181.  
  182. Sub cmdMove_Click (Index As Integer)
  183.     '---------------------------------------------
  184.     ' MoveFirst/Next/Previous/Last code.
  185.     ' Code to prevent "No Current Record" when
  186.     ' Move Methods are invoked.
  187.     '---------------------------------------------
  188.  
  189.     ' Okay, is this an empty table...?
  190.     If data1.Recordset.EOF = False And data1.Recordset.BOF = False Then
  191.  
  192.         ' No...  So let's do a move!
  193.         Select Case Index
  194.  
  195.             Case 0      ' MoveFirst
  196.                 lstActions.AddItem "MoveFirst:"
  197.                 data1.Recordset.MoveFirst
  198.  
  199.             Case 1      ' MovePrevious
  200.                 lstActions.AddItem "MovePrevious:"
  201.                 data1.Recordset.MovePrevious
  202.  
  203.                 ' Ah, but is there a record there?
  204.                 If data1.Recordset.BOF = True Then
  205.                     data1.Refresh
  206.                     If data1.Recordset.EOF = False Then
  207.                         data1.Recordset.MoveFirst
  208.                     End If
  209.                 End If
  210.  
  211.             Case 2      ' MoveNext
  212.                 lstActions.AddItem "MoveNext:"
  213.                 data1.Recordset.MoveNext
  214.  
  215.                 ' Ah, but is there a record there?
  216.                 If data1.Recordset.EOF = True Then
  217.                     data1.Refresh
  218.                     If data1.Recordset.BOF = False Then
  219.                         data1.Recordset.MoveLast
  220.                     End If
  221.                 End If
  222.  
  223.             Case 3      ' MovePrevious
  224.                 lstActions.AddItem "MoveLast:"
  225.                 data1.Recordset.MoveLast
  226.  
  227.         End Select
  228.  
  229.     End If
  230.  
  231.  
  232.     ' Wanna see something irritating?  Put the code below in the
  233.     ' reposition event(!)
  234.     If ((data1.Recordset.EOF = True) And (data1.Recordset.BOF = True)) Then
  235.         MsgBox "You will probably want to add a record or exit.", 0, "Empty Table!"
  236.     End If
  237.  
  238. End Sub
  239.  
  240. Sub cmdPrint_Click ()
  241.     '------------
  242.     ' Print List
  243.     '------------
  244.     Screen.MousePointer = 11
  245.  
  246.     Dim i%
  247.     For i% = 0 To lstActions.ListCount - 1
  248.         printer.Print lstActions.List(i%)
  249.     Next i%
  250.  
  251.     Screen.MousePointer = 0
  252.     
  253. End Sub
  254.  
  255. Sub cmdRefresh_Click ()
  256.     '---------------------------------------------
  257.     ' Refresh - Refreshes database
  258.     '---------------------------------------------
  259.     lstActions.AddItem "Refresh:"
  260.     data1.Refresh
  261.  
  262. End Sub
  263.  
  264. Sub Data1_Reposition ()
  265.     '---------------------------------------------
  266.     ' Reposition - Just updates the EOF/BOF flags
  267.     '              and adds to the list.
  268.     ' Reposition events triggered by the data
  269.     ' control are rarely a problem (unless the
  270.     ' table is empty).  The Data Control automatically
  271.     ' prevents moving off the end of a table.  It's the
  272.     ' actual MoveNext/